<?php
/*
 * Padres DAL.
 * @Autor: Andrés Ubilla.
 */
class PadresDAL {
    
    public static function grabar($oPadres){
        try{
            $arr = array(
                        "{#ID}" => $oPadres->getId(),
                        "{#NOMBRE}" => $oPadres->getNombre(),
                        "{#TIPO}" => $oPadres->getTipo(),
                        "{#IDPACIENTE}" => $oPadres->getIdPaciente(),
                        "{#ESTADO}" => $oPadres->getEstado()
                    );
            $query = Util::getQuery($arr, PadresSQL::$REGISTRAR_PADRE);
            $arrDatos = Bd::exec($query);
            $id = Bd::$IDENTITY;
            
            return $id;
        }  catch (Exception $e){
            throw new Exception($e->getMessage());
        }
    }
    
    public static function listar($idPaciente) {
        try {
            $arr = array(
                        "{#IDPACIENTE}" => $idPaciente
                    );
            $query = Util::getQuery($arr, PadresSQL::$LISTAR);

            $arrDatos = Bd::exec($query);
            $arrPadres = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oPadres = new Padres();
                    
                    $oPadres->setId(is_null($row["id"]) ? 0 : $row["id"]);
                    $oPadres->setNombre(is_null($row["nombre"]) ? "" : $row["nombre"]);
                    $oPadres->setTipo(is_null($row["tipo"]) ? 0 : $row["tipo"]);
                    if($oPadres->getTipo() == 1){
                        $oPadres->setTipo("Padre");
                    }else if($oPadres->getTipo() == 2){
                        $oPadres->setTipo("Madre");
                    }
                    $oPadres->setNombrePaciente(is_null($row["nombrePaciente"]) ? "" : $row["nombrePaciente"]);                   
                    $oPadres->setEstado(is_null($row["estado"]) ? 0 : $row["estado"]);
                    $arrPadres[] = $oPadres;
                }
            }

            return $arrPadres;
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA ELIMINAR PADRES.
    public static function eliminar($id){
        try{
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, PadresSQL::$ELIMINAR_PADRES);
            $arrDatos = Bd::exec($query);

        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA OBTENER POR ID PADRES.
    public static function obtenerPorId($id){
        try{
            $arr = array(
                        "{#ID}" => $id
                );
            $query = Util::getQuery($arr, PadresSQL::$OBTENER_PADRES_POR_ID);
            $arrDatos = Bd::exec($query);

            if (count($arrDatos) > 0) {
                $oPadres = new Padres();

                foreach ($arrDatos as $row) {
                    $oPadres->setId($row["id"]);
                    $oPadres->setNombre($row["nombre"]);
                    $oPadres->setTipo($row["tipo"]);
                    $oPadres->setIdPaciente($row["idPaciente"]);
                    $oPadres->setEstado($row["estado"]);
                }
                return $oPadres;
            }
        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA EDITAR PADRES.
    public static function editar($oPadres){
        try{
            $arr = array(
                    "{#ID}" => $oPadres->getId(),
                    "{#NOMBRE}" => $oPadres->getNombre(),
                    "{#TIPO}" => $oPadres->getTipo(),
                    "{#IDPACIENTE}" => $oPadres->getIdPaciente(),
                    "{#ESTADO}" => $oPadres->getEstado()
            );
            $query = Util::getQuery($arr, PadresSQL::$EDITAR_PADRES);
            $arrDatos = Bd::exec($query);

        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
}
?>
